<?php

class AllowedAccessController extends TMetroUI {

    public function listAllow() {

        /* JS */
        $this->HTML->addJavaScript(PATH_TEMPLATE_JS_URL . "jquery/jquery.dataTables.js");
        $this->HTML->addJavaScript(PATH_JS_URL . $this->_controller . "/" . $this->_action . ".js");

        $objFuncionalidadeLogic = new FuncionalidadeLogic();
        $objFuncionalidade = $objFuncionalidadeLogic->obterPorId($this->getParam('idPagina'));
        unset($objFuncionalidadeLogic);

        $objEstruturaFuncionalidade = FuncionalidadeHelper::objEstruturaFuncionalidade($objFuncionalidade->getNome(), 'PG');
        unset($objFuncionalidade);

        /* Adicionar nome do modulo a view */
        $this->addDados('modulo', ucfirst($objEstruturaFuncionalidade->modulo));
        /* Adicionar nome da pagina a view */
        $this->addDados('pagina', ucfirst($objEstruturaFuncionalidade->pagina));
        unset($objEstruturaFuncionalidade);

        /* Logic de Perfil */
        $objVPerfilLogic = new VPerfilLogic();

        /* Criar exception de carregamento do objeto */
        $exception['load'] = array(
            'status' => false, 'descricao' => false,
            'idSistema' => false, 'descricaoSistema' => false
        );

        /* Pegar o perfil pelo id */
        $objVPerfil = $objVPerfilLogic->obterPorId($this->getParam('idPerfil'), null, $exception);
        unset($objVPerfilLogic);

        /* Adicionar objeto perfil a view */
        $this->addDados('objPerfil', $objVPerfil);
        unset($objVPerfil);

        /* Criar logic de VPerfilFuncionalidade */
        $objVPerfilFuncionalidadeLogic = new VPerfilFuncionalidadeLogic();

        /* Definir where para o toolbar */
        $whereToolbar = "ide_perfil = '{$this->getParam('idPerfil')}' AND ide_funcionalidade_pai = '{$this->getParam('idPagina')}' AND tipo_funcionalidade = 'TB'";
        /* Existe funcionalidades do tipo TB ? */
        $this->addDados('isToolbar', ($objVPerfilFuncionalidadeLogic->totalRegistro($whereToolbar) > 0) ? true : false );
        unset($whereToolbar);

        /* Definir where para a flag */
        $whereFrag = "ide_perfil = '{$this->getParam('idPerfil')}' AND ide_funcionalidade_pai = '{$this->getParam('idPagina')}' AND tipo_funcionalidade = 'FG'";
        /* Existe funcionalidades do tipo FG ? */
        $this->addDados('isFlag', ($objVPerfilFuncionalidadeLogic->totalRegistro($whereFrag) > 0) ? true : false );
        unset($whereFrag);
        unset($objVPerfilFuncionalidadeLogic);

        /* Definir a aba que vai ser aberta */
        $objTFrameActive = new TFrameActiveHelper('frameI', 'frame');
        $this->addDados('frameActive', $objTFrameActive );
        unset($objTFrameActive);
        
        /* Criar template */
        $this->TDialog('lista');
    }
    
    public function acessoNegado() {
        $this->HTML->addJavaScript(PATH_JS_URL . $this->_controller . "/" . $this->_action . ".js");
        $this->TDialog('acessoNegado');
    }

}